package com.cloudbroker.bcs.platform.ltb.bizapi.t2service.transaction;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.fansRelated.CombSubscribeCancelForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.response.*;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.transaction.back.*;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.transaction.vo.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

import static com.cloudbroker.bcs.platform.ltb.bizapi.constants.IFSFunctionIds.IFSLTBCombineFunIds.*;

/**
 * Created by tianrui on 2016/7/22.
 */

@ServiceModule
public interface CombineT2BizService {

    /**
     * 组合申请
     * */
    @Service(functionId = FUNC_COMBINE_APPLY, desc = "组合申请")
    CombineApplyBack CombineApply(@ServiceParam("param") CombineCreateForm form);

    /**
     * 组合关注
     * */
    @Service(functionId = FUNC_COMBINE_FOCUS, desc = "组合关注")
    HSBCPSBackVO CombineFocus(@ServiceParam("param") CombineFocusForm form);

    /**
     * 组合关注取消
     * */
    @Service(functionId = FUNC_COMBINE_FOCUS_CANCEL, desc = "组合关注取消")
    HSBCPSBackVO CombineFocusCancel(@ServiceParam("param") CombineFocusForm form);

    /**
     * 组合概要信息查询
     * */
    @Service(functionId = FUNC_COMBINE_SUMMARY_QUERY, desc = "组合概要信息查询")
    CombineSummaryList CombineSummaryQuery(@ServiceParam("param") CombineSummaryQryForm form);

    /**
     * 组合排名
     * @param form
     * @return
     */
    @Service(functionId = FUNC_COMBINE_SORT, desc = "组合排名")
    CombRankQryBackVo func_comb_rank(CombineRankForm form);

    /**
     * 组合排名
     * @param form
     * @return
     */
    @Service(functionId = FUNC_COMBINE_SEARCH, desc = "组合搜索")
    CombineSearchList CombineSearch(CombineMidSearchForm form);

//    /**
//     * 组合委托
//     * @param form
//     * @return
//     */
//    CombEntrustVo func_comb_entrust_add(MiddleCombEntrustForm form);
    @Service(functionId = FUNC_COMBINE_BASIC_INFO, desc = "组合基本信息")
    MiddleCombineBasicInfoList combineBasicInfo(CombineMidBasicInfoform form);

    //投顾模糊搜索
    @Service(functionId = FUNC_EXTCOMACCT_VAGUE_QRY, desc = "投顾模糊查询")
    ExtcomacctVagueQryList func_extcomacct_vague_qry(ExtcomacctVagueForm form);


    @Service(functionId = FUC_FOCUS_INTEREST_ADD,desc="投顾关注")
    public InterestFocusVo func_focus_interest_add(@ServiceParam("param") FocusInterestByTransForm param);

    @Service(functionId = FUNC_COMB_ENTRUST_ADD,desc="组合委托")
    public CombEntrustVo func_comb_entrust_add(@ServiceParam("param") CombEntrustTransForm param);


    @Service(functionId = FUNC_COMBINE_FOCUD,desc="组合订阅")
    public CombSubscribeVo func_combine_focus(@ServiceParam("param") CombSubscribeTransForm param);

    @Service(functionId = FUNC_COMB_SUBSCRIPTION,desc="已关注组合信息查询")
    SubscriptionCombineQryBackVo func_comb_subscription(MiddleSubscriptionCombineForm form);

    @Service(functionId = FUNC_MIDDLE_COMBINE_FOCUS_CANCEL,desc="组合订阅取消")
    CombSubscribeCancelVo func_combine_focus_cancel(MiddleCombSubscribeCancelForm form);
}
